<template>
    <div class="class-name">
        <div v-for="(example, i) in examples" :key="i">
            <example :template-code="templateCode(example.type)">
                <template #describe>
                    <t class="class-title" :id="'.' + example.type">.{{ example.type }}</t>
                    <div class="s-code-gray"><span>{{ example.describe }}</span></div>
                </template>
                <div :class="['word-text', `example-${example.type}`, example.type]">
                    <span>{{ text }}</span>
                </div>
            </example>
        </div>
        <el-backtop target=".main-container"></el-backtop>
    </div>
</template>

<script>
/* eslint-disable max-len */
import { useStore } from 'vuex';
import { onMounted } from 'vue';

export default {
    name: 'Example1',
    setup() {
        const store = useStore();
        onMounted(() => { store.commit('updateArticleTree'); });

        return {
            examples: [
                {
                    type: 'cut_font',
                    describe: '超出文字裁剪为 1 行',
                },
                {
                    type: 'cut_font_2',
                    describe: '超出文字裁剪为 2 行；最多支持到 .cut_font_10',
                },
                {
                    type: 'vertical-scroll',
                    describe: '竖向滚动条样式',
                },
                {
                    type: 'transverse-scroll',
                    describe: '横向滚动条样式',
                },
            ],
            text: `
先帝创业未半而中道崩殂，今天下三分，益州疲弊，此诚危急存亡之秋也。然侍卫之臣不懈于内，忠志之士忘身于外者，盖追先帝之殊遇，欲报之于陛下也。诚宜开张圣听，以光先帝遗德，恢弘志士之气，不宜妄自菲薄，引喻失义，以塞忠谏之路也。
宫中府中，俱为一体，陟罚臧否，不宜异同。若有作奸犯科及为忠善者，宜付有司论其刑赏，以昭陛下平明之理，不宜偏私，使内外异法也。
侍中、侍郎郭攸之、费祎、董允等，此皆良实，志虑忠纯，是以先帝简拔以遗陛下。愚以为宫中之事，事无大小，悉以咨之，然后施行，必能裨补阙漏，有所广益。
将军向宠，性行淑均，晓畅军事，试用于昔日，先帝称之曰能，是以众议举宠为督。愚以为营中之事，悉以咨之，必能使行阵和睦，优劣得所。
亲贤臣，远小人，此先汉所以兴隆也；亲小人，远贤臣，此后汉所以倾颓也。先帝在时，每与臣论此事，未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军，此悉贞良死节之臣，愿陛下亲之信之，则汉室之隆，可计日而待也。
臣本布衣，躬耕于南阳，苟全性命于乱世，不求闻达于诸侯。先帝不以臣卑鄙，猥自枉屈，三顾臣于草庐之中，咨臣以当世之事，由是感激，遂许先帝以驱驰。后值倾覆，受任于败军之际，奉命于危难之间，尔来二十有一年矣。
先帝知臣谨慎，故临崩寄臣以大事也。受命以来，夙夜忧叹，恐托付不效，以伤先帝之明，故五月渡泸，深入不毛。今南方已定，兵甲已足，当奖率三军，北定中原，庶竭驽钝，攘除奸凶，兴复汉室，还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益，进尽忠言，则攸之、祎、允之任也。
愿陛下托臣以讨贼兴复之效，不效，则治臣之罪，以告先帝之灵。若无兴德之言，则责攸之、祎、允等之慢，以彰其咎；陛下亦宜自谋，以咨诹善道，察纳雅言，深追先帝遗诏，臣不胜受恩感激。
今当远离，临表涕零，不知所言。`,
            templateCode: (name) => `<template>
    <div class="example-box ${name}">
        <span>{{ text }}</span>
    </div>
</template>

<script>
    export default {
        name: 'ExampleBox',
        setup() {
            return {
                text: \`
先帝创业未半而中道崩殂，今天下三分，益州疲弊，此诚危急存亡之秋也。然侍卫之臣不懈于内，忠志之士忘身于外者，盖追先帝之殊遇，欲报之于陛下也。
诚宜开张圣听，以光先帝遗德，恢弘志士之气，不宜妄自菲薄，引喻失义，以塞忠谏之路也。
宫中府中，俱为一体，陟罚臧否，不宜异同。若有作奸犯科及为忠善者，宜付有司论其刑赏，以昭陛下平明之理，不宜偏私，使内外异法也。
侍中、侍郎郭攸之、费祎、董允等，此皆良实，志虑忠纯，是以先帝简拔以遗陛下。愚以为宫中之事，事无大小，悉以咨之，然后施行，必能裨补阙漏，有所广益。
将军向宠，性行淑均，晓畅军事，试用于昔日，先帝称之曰能，是以众议举宠为督。愚以为营中之事，悉以咨之，必能使行阵和睦，优劣得所。
亲贤臣，远小人，此先汉所以兴隆也；亲小人，远贤臣，此后汉所以倾颓也。先帝在时，每与臣论此事，未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军，此悉贞良死节之臣，愿陛下亲之信之，则汉室之隆，可计日而待也。
臣本布衣，躬耕于南阳，苟全性命于乱世，不求闻达于诸侯。先帝不以臣卑鄙，猥自枉屈，三顾臣于草庐之中，咨臣以当世之事，由是感激，遂许先帝以驱驰。后值倾覆，受任于败军之际，奉命于危难之间，尔来二十有一年矣。
先帝知臣谨慎，故临崩寄臣以大事也。受命以来，夙夜忧叹，恐托付不效，以伤先帝之明，故五月渡泸，深入不毛。今南方已定，兵甲已足，当奖率三军，北定中原，庶竭驽钝，攘除奸凶，兴复汉室，还于旧都。
此臣所以报先帝而忠陛下之职分也。至于斟酌损益，进尽忠言，则攸之、祎、允之任也。
愿陛下托臣以讨贼兴复之效，不效，则治臣之罪，以告先帝之灵。若无兴德之言，则责攸之、祎、允等之慢，以彰其咎；陛下亦宜自谋，以咨诹善道，察纳雅言，深追先帝遗诏，臣不胜受恩感激。
今当远离，临表涕零，不知所言。\`,
            };
        },
    };
<\/script>

<style lang="scss">
.example-box {
    line-height: 1.5;${name === 'vertical-scroll' ? '\n    max-height: 80px;' : ''}${name === 'transverse-scroll' ? '\n    max-width: 600px;\n    span {\n       display: inline-block;\n       width: 1000px;\n    }' : ''}
}
</style>`,
        };
    },
};
</script>

<style lang="scss">
.class-name {
    .example-box {
        .class-title {
            margin-bottom: 10px!important;
        }
        .s-code-gray {
            margin: 0!important;
            padding: 0!important;
        }
        .word-text {
            line-height: 1.5;
        }
        .example-vertical-scroll {
            max-height: 80px;
        }
        .example-transverse-scroll {
            span {
                display: inline-block;
                width: 1000px;
            }
            max-width: 600px;
        }
    }
}
</style>
